﻿Перем Ванесса;

Функция ДобавитьШагВМассивТестов(МассивТестов,Снипет,ИмяПроцедуры,ПредставлениеТеста = Неопределено,Транзакция = Неопределено,Параметр = Неопределено)
	Структура = Новый Структура;
	Структура.Вставить("Снипет",Снипет);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ПредставлениеТеста",ПредставлениеТеста);
	Структура.Вставить("Транзакция",Транзакция);
	Структура.Вставить("Параметр",Параметр);
	МассивТестов.Добавить(Структура);
КонецФункции

Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт
	Ванесса = КонтекстФреймворкаBDD;
	
	ВсеТесты = Новый Массив;

	//описание параметров
	ДобавитьШагВМассивТестов(ВсеТесты,"ОжидаемыйФайлEpfУжеСуществуетIssues232()","ОжидаемыйФайлEpfУжеСуществуетIssues232","И ожидаемый файл epf уже существует issues232");
	ДобавитьШагВМассивТестов(ВсеТесты,"СгенерированныйEpfПрошелПроверкуНаКорректностьПослеПерегенерацииIssues232()","СгенерированныйEpfПрошелПроверкуНаКорректностьПослеПерегенерацииIssues232","И сгенерированный epf прошел проверку на корректность после перегенерации issues232");

	Возврат ВсеТесты;
КонецФункции

Процедура ПередНачаломСценария() Экспорт
	ИмяОжидаемогоФайла = Ванесса.КаталогИнструментов + "\features\Support\Templates\step_definitions\ФичаДляПроверкиПерегенерацииEPF232.epf";
	ФайлПроверкаСуществования = Новый Файл(ИмяОжидаемогоФайла);
	Если ФайлПроверкаСуществования.Существует() Тогда
		УдалитьФайлы(ИмяОжидаемогоФайла);
	КонецЕсли;
	Контекст.Вставить("ИмяОжидаемогоФайла",ИмяОжидаемогоФайла);
КонецПроцедуры

Процедура ПередОкончаниемСценария() Экспорт
	ИмяОжидаемогоФайла = Контекст.ИмяОжидаемогоФайла;
	ФайлПроверкаСуществования = Новый Файл(ИмяОжидаемогоФайла);
	Если ФайлПроверкаСуществования.Существует() Тогда
		УдалитьФайлы(ИмяОжидаемогоФайла);
	КонецЕсли;	 
	
	//безусловное закрытие формы если она осталась
	Попытка
	    ОткрытаяФормаVanessaBehavoir = Контекст.ОткрытаяФормаVanessaBehavoir;
		ОткрытаяФормаVanessaBehavoir.Закрыть();
	Исключение
	
	КонецПопытки;
	
КонецПроцедуры



//ожидаемый файл epf уже существует
//@ОжидаемыйФайлEpfУжеСуществует()
Процедура ОжидаемыйФайлEpfУжеСуществуетIssues232() Экспорт
	ИмяОжидаемогоФайла = Контекст.ИмяОжидаемогоФайла;
	ФайлПроверкаСуществования = Новый Файл(ИмяОжидаемогоФайла);
	Если ФайлПроверкаСуществования.Существует() Тогда
		УдалитьФайлы(ИмяОжидаемогоФайла);
	КонецЕсли;	 
	
	Ванесса.ПроверитьНеРавенство(ФайлПроверкаСуществования.Существует(),Истина,"В этот момент Файл " + ИмяОжидаемогоФайла + " НЕ должен существовать.");
	
	
	Макет = ПолучитьМакет("Макет");
	Макет.Записать(ИмяОжидаемогоФайла);
	
	ФайлПроверкаСуществования = Новый Файл(ИмяОжидаемогоФайла);
	Ванесса.ПроверитьРавенство(ФайлПроверкаСуществования.Существует(),Истина,"Файл " + ИмяОжидаемогоФайла + " должен существовать.");
КонецПроцедуры



//И сгенерированный epf прошел проверку на корректность после перегенерации issues232
//@СгенерированныйEpfПрошелПроверкуНаКорректностьПослеПерегенерацииIssues232()
Процедура СгенерированныйEpfПрошелПроверкуНаКорректностьПослеПерегенерацииIssues232() Экспорт
	ОбработкаПослеПерегенерации = ВнешниеОбработки.Создать(Контекст.ИмяОжидаемогоФайла);
	
	
	//должен был появиться этот шаг
	Попытка
		ОбработкаПослеПерегенерации.ПростоШаг();
	Исключение
		Стр = ОписаниеОшибки();
		Если Найти(Стр,"Не реализовано.") = 0 Тогда
			ВызватьИсключение "Должен был появиться метод ПростоШаг, но не появился.";
		КонецЕсли;	 
	КонецПопытки;
КонецПроцедуры
